ホームに戻る
出典 :
Window.WindowStyle プロパティ (System.Windows) | Microsoft Docs Window.ResizeMode プロパティ (System.Windows) | Microsoft Docs Window.WindowState プロパティ (System.Windows) | Microsoft Docs Window.SizeToContent プロパティ (System.Windows) | Microsoft Docs Window.WindowStartupLocation プロパティ (System.Windows) | Microsoft Docs
関連 :
ウィンドウの表示
目次 :

ウィンドウの表示に関するプロパティ

WPFにおける、ウィンドウ表示に関連するプロパティを以下に記す。Windows Formsとは一部プロパティ名が異なる。

WindowStyle : ウィンドウの境界線

WindowStyle プロパティはウィンドウの境界線(枠)を規定する。
型は WindowStyle 列挙型、既定値は SingleBorderWindow 。

ResizeMode : ウィンドウのリサイズ可否

ResizeMode プロパティはウィンドウのリサイズの可否を規定する。
型は ResizeMode 列挙型、既定値は CanResize 。
設定値 概略 リサイズ 最小化ボタン 最大化ボタン
NoResize リサイズ不可。最大化、最小化ボタンが表示されない。 不可 非表示 非表示
CanMinimize 最小化のみ可能。最大化ボタンは表示されるが無効。 不可 有効 無効
CanResize 既定値。リサイズ、最小化、最大化が可能。 有効 有効
CanResizeWithGrip CanResize に加え、リサイズ可能であることを示すグリップが右下隅に表示される。 有効 有効

WindowState : ウィンドウの表示状態

ウィンドウが元のサイズにあるか、最大化、または最小化されているかを示す。
型は WindowState 列挙型、既定値は Normal 。

元のサイズの保持と復元

最大化、最小化を行う直前の元のサイズは RestoreBounds プロパティに格納され、復元時にその値を使用する。

表示状態変更時のイベント

WindowState の値が変化した場合、 StateChanged イベントが発生する。

SizeToContent : ウィンドウサイズをコンテンツに合わせて調整するか

ウィンドウのサイズ(幅・高さ)をコンテンツに合わせて自動的に調整するかを示す。
型は SizeToContent 列挙型、既定値は Manual 。
設定値 概略 幅 (Width) 高さ (Height)
Normal 既定値。サイズが自動調整されない。 有効 有効
Width 幅のみ自動調整される。Width の設定は無視される。 無効 有効
Height 高さのみ自動調整される。Height の設定は無視される。 有効 無効
WidthAndHeight 幅と高さの両方が自動調整される。Width 、Height の設定が無視される。 無効 無効

WindowStartupLocation

ウィンドウの初期表示位置を示す。型は WindowStartupLocation 列挙型、既定値は Manual 。

タイトルバーを残したまま閉じるボタンを非表示にする

WindowStyle プロパティで最大化、最小化ボタンを非表示にすることはできるが、閉じるボタンのみはプロパティの設定では非表示にできない。
コードビハインドを以下のように記述することで実現できる。#region ~ #endregion が該当箇所。
System.Runtime.InteropServices および System.Windows.Interop の参照を行うため、using で指定している。
(.NETのサポート範囲に無いためWin32 APIをコールする。)
MainWindow.xaml.cs (コードビハインド)
using System; using System.Windows; using System.Runtime.InteropServices; //< 参照設定 using System.Windows.Interop; //< 参照設定 namespace WindowMenuButtonHidden { public partial class MainWindow : Window { #region "最大化・最小化・閉じるボタンの非表示設定" [DllImport("user32.dll")] private static extern int GetWindowLong(IntPtr hWnd, int nIndex); [DllImport("user32.dll")] private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); const int GWL_STYLE = -16; const int WS_SYSMENU = 0x80000; protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); IntPtr handle = new WindowInteropHelper(this).Handle; int style = GetWindowLong(handle, GWL_STYLE); style = style & (~WS_SYSMENU); SetWindowLong(handle, GWL_STYLE, style); } #endregion public MainWindow() { InitializeComponent(); } : } }